<?php
class PostModel extends Model
{
    function __construct()
    {
        $this->loadTable('post');
        $db = DataProvider::getInstance();
    }

    public function handleIndex()
    {
        $db = DataProvider::getInstance();
        $sql = "SELECT p.*,c.name as cname FROM post p,category c WHERE p.category_id = c.id ORDER BY p.p_date DESC";
        $result = $db->_query($sql);
        return $result;
    }

    public function getList($page = 0)
    {
        $option = array('limit'=>20,'offset'=>$page * 20);
        $rs = $this->tables['post']->get(NULL,$option);
        return $rs;
    }

    public function handleAdd()
    {
        $flagError = FALSE;
        $errorArr = array();
        $result = array();
        
        if(is_null($_POST['title']) || strlen($_POST['title']) > 1024)
        {
            $flagError = TRUE;
            $errorArr[] = "Tiêu đề bài viết không được để trống hoặc nhiều hơn 1024 kí tự";
        }

        if(isset($_POST['summary']) && strlen($_POST['summary']) > 2000)
        {
            $flagError = TRUE;
            $errorArr[] = "Tóm tắt không được nhiều hơn 2000 kí tự";
        }

        if (isset($_POST['detail']) && strlen($_POST['detail']) > 100000)
        {
            $flagError = TRUE;
            $errorArr[] = "Nội dung không được nhiều hơn 100000 kí tự";
        }

        if (isset($_POST['avatar']) && strlen($_POST['avatar']) > 2000)
        {
            $flagError = TRUE;
            $errorArr[] = "Đường dẫn ảnh đại diện không được nhiều hơn 1024 kí tự";
        }

        if($_POST['category_id'] == 0)
        {
            $flagError = TRUE;
            $errorArr[] = "Bắt buộc phải chọn danh mục cho bài viết";
        }

        if ($flagError)
        {
            $result['has_Error'] = TRUE;
            $result['error'] =& $errorArr;
            $result['input'] = $_POST;
            return $result;
        }

        $postTbl =& $this->tables['post'];
        $postTbl->set('title', htmlentities($_POST['title'], ENT_QUOTES, "UTF-8"));
        if(isset($_POST['summary']))
            $postTbl->set('summary', htmlentities($_POST['summary'], ENT_QUOTES, "UTF-8"));
        if (isset($_POST['detail']))
            $postTbl->set('detail', htmlentities($_POST['detail'], ENT_QUOTES, "UTF-8"));
        if (isset($_POST['avatar']))
            $postTbl->set('avatar', $_POST['avatar']);
        $postTbl->set('category_id', $_POST['category_id']);
        $postTbl->set('status', $_POST['status']);
        $postTbl->set('comment_enable', $_POST['comment_enable']);
        $postTbl->set('p_date',date("Y-m-d H:i:s"));
        $postTbl->insert();
        $result['message'] = "Thêm danh mục thành công";
        $result['inserted_id'] = $postTbl->inserted_id();
        return $result;
    }

    public function handleEdit($id)
    {
        $flagError = FALSE;
        $errorArr = array();
        $result = array();

        if (!isset($_POST['title']) || strlen($_POST['title']) > 1024)
        {
            $flagError = TRUE;
            $errorArr[] = "Tiêu đề bài viết không được để trống hoặc nhiều hơn 1024 kí tự";
        }

        if (isset($_POST['summary']) && strlen($_POST['summary']) > 2000)
        {
            $flagError = TRUE;
            $errorArr[] = "Tóm tắt không được nhiều hơn 2000 kí tự";
        }
        //echo strlen($_POST['detail']);exit;
        if (isset($_POST['detail']) && strlen($_POST['detail']) > 100000)
        {
            $flagError = TRUE;
            $errorArr[] = "Nội dung không được nhiều hơn 100000 kí tự";
        }

        if (isset($_POST['avatar']) && strlen($_POST['avatar']) > 2000)
        {
            $flagError = TRUE;
            $errorArr[] = "Đường dẫn ảnh đại diện không được nhiều hơn 1024 kí tự";
        }

        if ($_POST['category_id'] == 0)
        {
            $flagError = TRUE;
            $errorArr[] = "Bắt buộc phải chọn danh mục cho bài viết";
        }

        if ($flagError)
        {
            $result['has_Error'] = TRUE;
            $result['error'] =& $errorArr;
            $result['input'] = $_POST;
            return $result;
        }

        $postTbl =& $this->tables['post'];
        $postTbl->set('title', htmlentities($_POST['title'], ENT_QUOTES, "UTF-8"));
        if (isset($_POST['summary']))
            $postTbl->set('summary', htmlentities($_POST['summary'], ENT_QUOTES, "UTF-8"));
        if (isset($_POST['detail']))
            $postTbl->set('detail', htmlentities($_POST['detail'], ENT_QUOTES, "UTF-8"));
        //if (isset($_POST['detail']))
        //    $postTbl->set('detail', mysql_real_escape_string($_POST['detail']));
        if (isset($_POST['avatar']))
            $postTbl->set('avatar', $_POST['avatar']);
        $postTbl->set('category_id', $_POST['category_id']);
        $postTbl->set('status', $_POST['status']);
        $postTbl->set('comment_enable', $_POST['comment_enable']);
        $postTbl->set('p_date', date("Y-m-d H:i:s"));
        $condition = array('id'=> $id);
        $postTbl->update($condition);
        $result['message'] = "Sửa bài viết thành công";
        $result['inserted_id'] = $id;
        return $result;
    }

    public function getPost($id)
    {
        $condition = array('id' => $id);
        $rs = $this->tables['post']->get($condition);
        return $rs;
    }

    public function handleRemove($id)
    {
        $con = array('id' => $id);
        $this->tables['post']->remove($con);
    }
}
 
